Diziler
Java'da diziler, aynı türden birden fazla veriyi saklamak için kullanılan veri yapılarıdır. Diziler, sabit boyutta olmak zorundadır ve dizinin boyutu tanımlandıktan sonra değiştirilemez.
Diziler, tek boyutlu veya çok boyutlu olabilirler. Tek boyutlu diziler, yalnızca bir boyutta saklanan verileri tutarken, çok boyutlu diziler, iki veya daha fazla boyutta saklanan verileri tutarlar.
Dizi Oluşturma
Java'da dizi, aynı türdeki verilerin bir arada depolanması için kullanılan bir veri yapısıdır. Dizi oluşturmak için öncelikle verilerin tipini belirtmeli ve boyutunu belirlemelisiniz. Boyut, dizide kaç eleman olacağını belirler.
Örneğin, bir int türünde 5 eleman içeren bir dizi oluşturmak için şu kodu kullanabilirsiniz:
int[] myArray = new int[5];
Bu kod, "myArray" adlı bir dizi oluşturur ve bu dizi 5 eleman içerebilir. Elemanlar varsayılan olarak sıfır olarak ayarlanır.
Dizinin elemanlarını ayarlamak için basit bir indeks kullanımı ile ulaşabilirsiniz.
Daha sonra, dizinin elemanlarını ayarlayabilirsiniz. Örneğin, dizinin ilk elemanını 10 olarak ayarlamak için şu kodu kullanabilirsiniz:
myArray[0] = 10;
Dizinin elemanlarına erişmek için, dizinin adını ve ardından []
işaretini kullanarak indeksi belirleyin. İndeksler 0'dan başlar, yani ilk elemanı erişmek için 0 indeksini kullanmalısınız.
Diziler ayrıca farklı türlerde verileri de içerebilir. Örneğin, bir String türünde 3 eleman içeren bir dizi oluşturmak için şu kodu kullanabilirsiniz:
String[] myStringArray = new String[3];
Diziler, genellikle birden fazla veri öğesini saklamak için kullanılır ve bu nedenle programlamada oldukça yaygındırlar.
New Sözcüğü Kullanımı
Java'da dizi oluşturmak için "new" anahtar sözcüğü kullanılır çünkü dizi, bellekte dinamik olarak oluşturulur. Bu nedenle, bellek tahsis edilmeden önce dizinin boyutu bilinmelidir.
"new" anahtar sözcüğü, bellekte dizinin boyutuna göre bir alan tahsis etmek için kullanılır. Bu, Java sanal makinesinin, dizinin boyutuna göre bellekte bir alan ayırması için talimat verir.
Yeni oluşturduğunuz dizinin elemanları, varsayılan olarak sıfır değerine sahip olacaktır.
Ayrıca, "new" anahtar sözcüğü aynı zamanda dizinin öğelerine varsayılan değerler atamak için de kullanılır. Örneğin, bir int türünde bir dizi oluşturursanız, "new" anahtar sözcüğü varsayılan olarak tüm dizinin elemanlarını sıfır olarak ayarlar.
Özetle, "new" anahtar sözcüğü, bir dizi oluşturmak için Java programlama dilinde kullanılan bir sözdizimidir. Bellekte dizinin boyutuna göre bir alan ayırmak ve öğelere varsayılan değerleri atamak için kullanılır.
Dizi İşlemleri
Java'da dizi işlemleri, verileri işlemek için birçok yöntem içerir. Bazı temel dizi işlemleri şunlardır:
Dizi elemanlarına erişme: Dizi elemanlarına erişmek için dizinin indeksini belirtmeniz gerekir. İndeksler 0'dan başlar, yani ilk elemana erişmek için 0 indeksini kullanmalısınız. Örneğin:
int[] myArray = {1, 2, 3, 4, 5};
int firstElement = myArray[0]; // ilk elemana erişmek için 0 indeksini kullanınDizi elemanlarını güncelleme: Dizi elemanlarını güncellemek için dizinin indeksini belirtmeniz gerekir. Örneğin:
int[] myArray = {1, 2, 3, 4, 5};
myArray[0] = 10; // ilk elemanı 10 olarak güncelleyinDizi elemanlarını toplama: Dizi elemanlarını toplamak için bir döngü kullanabilirsiniz. Örneğin:
int[] myArray = {1, 2, 3, 4, 5};
int sum = 0;
for (int i = 0; i < myArray.length; i++) {
sum += myArray[i];
}Diziyi sıralama: Diziyi sıralamak için "Arrays.sort()" metodunu kullanabilirsiniz. Örneğin:
int[] myArray = {5, 4, 3, 2, 1};
Arrays.sort(myArray); // diziyi küçükten büyüğe sıralarDiziyi kopyalama: Diziyi kopyalamak için "Arrays.copyOf()" metodunu kullanabilirsiniz. Örneğin:
int[] myArray = {1, 2, 3, 4, 5};
int[] newArray = Arrays.copyOf(myArray, myArray.length); // myArray'nin tüm elemanlarını kopyalarDizi elemanlarını arama: Dizi elemanlarını aramak için "Arrays.binarySearch()" metodunu kullanabilirsiniz. Örneğin:
int[] myArray = {1, 2, 3, 4, 5};
int index = Arrays.binarySearch(myArray, 3); // 3 elemanının indeksini bulun
Bu temel dizi işlemleri, Java'da verileri işlemek için kullanabileceğiniz birkaç yolun sadece birkaç örneğidir.
Nesne Dizileri
Java'da nesne dizileri, bir sınıftan birden fazla nesne oluşturmak için kullanılır. Her bir nesne, sınıfın özelliklerine sahip olabilir ve bu özellikler dizinin elemanları olarak tutulur. Nesne dizileri, sınıfın özelliklerinin farklı örnekleri için aynı davranışı göstermek istediğimizde kullanışlıdır.
Nesne dizileri, aşağıdaki gibi tanımlanır:
SinifAdi[] nesneDizisi = new SinifAdi[diziBoyutu];
Burada, "SinifAdi" nesnesi, dizideki her bir elemanın türünü belirtir. "nesneDizisi" ismi, dizinin adıdır ve "diziBoyutu", dizinin boyutunu belirtir. Dizinin elemanlarına erişmek için, dizinin indekslerini kullanabilirsiniz. İndeksler 0'dan başlar ve son elemanın indeksi, dizinin boyutundan bir azdır.
Nesne dizilerinin örnek kullanımı aşağıdaki gibidir:
public class Ogrenci {
private String ad;
private int yas;
public Ogrenci(String ad, int yas) {
this.ad = ad;
this.yas = yas;
}
public String getAd() {
return ad;
}
public int getYas() {
return yas;
}
}
public class Test {
public static void main(String[] args) {
Ogrenci[] ogrenciler = new Ogrenci[3];
ogrenciler[0] = new Ogrenci("Ali", 20);
ogrenciler[1] = new Ogrenci("Ayse", 19);
ogrenciler[2] = new Ogrenci("Mehmet", 21);
for (int i = 0; i < ogrenciler.length; i++) {
System.out.println("Ogrenci adi: " + ogrenciler[i].getAd() + ", Yas: " + ogrenciler[i].getYas());
}
}
}
Yukarıdaki örnekte, "Ogrenci" sınıfından bir nesne dizisi oluşturduk ve her bir öğrenci için ad ve yaş özelliklerini belirttik. Sonra, dizideki her bir elemanı döngü kullanarak döngüde yazdırdık.
Nesne dizileri, aynı sınıftan farklı örnekler için aynı işlemleri uygulamak istediğimizde kullanışlıdır. Nesne dizileri, Java'da verileri yönetmek için güçlü bir araçtır.
Fonksiyona Dizi Gönderilmesi
Java'da bir fonksiyona dizi göndermek için, dizinin türünü ve adını belirten bir parametre listesi oluşturmanız gerekir. Bu şekilde, dizinin referansı fonksiyona aktarılır ve fonksiyon, dizinin elemanlarına erişebilir.
Dizi parametresi, diğer parametreler gibi belirtilir, ancak dizi türünün yanına köşeli parantezler eklenir. Aşağıdaki örnekte, "dizi" adlı bir int türünde bir dizi parametresi olan "fonksiyonAdi" adlı bir fonksiyon oluşturulmuştur:
public void fonksiyonAdi(int[] dizi) {
// Dizi elemanlarına erişmek için burada kod yazabilirsiniz
}
Dizi parametresini çağıran kodda, fonksiyon adını ve dizinin adını belirtmeniz gerekir. Aşağıdaki örnekte, "dizi" adlı bir int türünde bir dizi, "fonksiyonAdi" adlı bir fonksiyona aktarılır:
int[] dizi = {1, 2, 3, 4, 5};
fonksiyonAdi(dizi);
Fonksiyon içinde, dizi elemanlarına erişmek için, dizi referansını kullanabilirsiniz. Aşağıdaki örnekte, "dizi" adlı bir int türünde bir dizi parametresi olan "fonksiyonAdi" adlı bir fonksiyonda, dizi elemanlarının toplamını hesaplarız:
public void fonksiyonAdi(int[] dizi) {
int toplam = 0;
for (int i = 0; i < dizi.length; i++) {
toplam += dizi[i];
}
System.out.println("Dizi elemanlarinin toplami: " + toplam);
}
Yukarıdaki örnekte, "fonksiyonAdi" fonksiyonu, "dizi" adlı int türünde bir dizi parametresi alır ve dizinin elemanlarını toplayarak sonucu ekrana yazdırır.
Dizi parametreleri, Java'da çok sık kullanılan bir tekniktir ve fonksiyonlarda dizilerle çalışırken oldukça yararlıdır.
Çok Boyutlu Diziler
Dizinin elemanlarına erişmek için iki indeks kullanılır. İlk indeks, satırı, ikinci indeks ise sütunu belirtir. Aşağıdaki örnekte, dizi adlı 2 boyutlu bir int türünde dizi tanımlanır ve ardından değerlerle başlatılır. Daha sonra, dizi elemanlarına erişmek için iki indeks kullanılır:
int[][] dizi = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
System.out.println(dizi[0][0]); // 1
System.out.println(dizi[0][1]); // 2
System.out.println(dizi[1][1]); // 5
System.out.println(dizi[2][2]); // 9
Yukarıdaki örnekte, dizi adlı bir 3 boyutlu int türünde dizi tanımlanır ve 2 sıra, 2 sütun ve 2 derinliğe sahip bir dizi içerir. Diziye, {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}} değerleri atanır.
Çok boyutlu diziler, genellikle matrisler gibi birçok veri yapısında kullanılır. Çok boyutlu dizilerle çalışırken, elemanlara erişmek için birden fazla indeks kullanmanız gerekir ve boyutların sayısı arttıkça dizi erişimi daha karmaşık hale gelir.